/***
 * 发布供应报盘js
 * 20151025
 */
$(function () {
    // 渲染页面-通用部分；
    commTemplUtil.initPage();
    // 渲染左侧菜单;
    commTemplUtil.initCommLeftMemu();
    
    commTemplUtil.setLeftMenu(1);

    var defaultPagingObj = {
        total : 20,
        pageSize : 10,
        page : 1
    };

    PAGE_DATA.pagingObj = $.extend(defaultPagingObj, PAGE_DATA.pagingObj);

    // 初始化采购商信息
    $("#name").html(PAGE_DATA.buyers.name);
    $("#sqtime").html(PAGE_DATA.buyers.sqtime);
    // 查看详情
    $("#sqmart").attr("href", PAGE_DATA.buyers.sqmart);

    //绑定添加授权商品的事件
    bindAddPro();

    //获取价格策略listPriceStrategy
    listPriceStrategy();

    // 渲染省市区
    renderArea();

    //取得已经授权的商品
    getClassifyData(1);

});

/*
 *分页查询数据
 */
function getClassifyData(page) {
    var onClickObj = {
        onClick : function () {
            var clickPage = $(this).attr("data-page");
            getClassifyData(clickPage);
        }
    };
    var classifyTempl = _.template($('#item-template1').html());
    // 获取 信息列表
    $.ajax({
        url : PAGE_CONFIG.requestUrl.listAlreadyPro,
        type : "get",
        data : {
            page : page + "",
            pageSize : PAGE_DATA.pagingObj.pageSize
        },
        success : function (result) {
            setClassifyData(result.data, classifyTempl);

            //  更新翻页控件
            var tmpConf = $.extend(result.pagingConfData, onClickObj);
            commTemplUtil.initPaging("#comm-paging", tmpConf);

        },
        error : function () {
            //错误信息框模板
            var errorObj1 = _.template($('#item-error').html());
            var errorTip = dialog({
                    title : '注意',
                    content : errorObj1
                });
            errorTip.showModal();
            $("#ok").click(function () {
                errorTip.remove();
            });
        }
    });
}
//点击列表的复选框
function clickCheck(obj) {
    if (!$(obj).is(':checked')) {
        $("#check").prop("checked", false);
    } else {
        var arrChk = $('input[type="checkbox"][name="checks"]:unchecked'); //$("input[name='checks'][checked]");
        if (arrChk.length == 0) {
            $("#check").prop("checked", true);
        }
    }
}

/**
 * 绑定添加授权商品的事件
 * @return
 */
function bindAddPro() {

    $("#add-warrant-shop").click(function () {

        //采购商id
        var id = PAGE_DATA.buyers.id;

        //选择授权商品的字符串拼接
        var pros = "";
        //封装已选商品的id集，放入数组中
        var childs = $('#already').children('div').length;
        var childArry = new Array();
        if (childs > 0) {
            for (var i = 0; i < childs; i++) {
                childArry.push($("#proid_" + i).val());
            }
        }

        //根据采购商id查询需要授权的商品
        $.ajax({
            url : PAGE_CONFIG.requestUrl.listProduts,
            type : "get",
            data : {
                page : "1",
                pageSize : 10,
                id : id
            },
            success : function (result) {
                $.each(result.data, function (i, ele) {
                    var ck = "";
                    if ($.inArray(ele.id + '', childArry) >= 0) {
                        ck = 'checked="checked"';
                    }
                    pros += '<ul class="clearfix"><li style="line-height: 0px;width:5%;margin-top:5px;"><span class="shop-checkbox"><input type="checkbox" name="checks" onclick="clickCheck(this)" ' + ck + ' id="ck_' + ele.id + '" value="' + ele.id + ';' + ele.img + ';' + ele.proname + ';' + ele.price + '" style="margin-top: 5px;"></span></li><li class="w10" style="width:8%;"><span class="check-all"></span></li><li class="shop-img" style="width:20%;"><img src="' + ele.img + '"></li><li class="ul-shop-name" style="width:30%;text-align:left">' + ele.proname + '</li><li class="pice" style="width:30%">￥' + ele.price + '</li></ul>';
                });

                var di = dialog({
                        title : '选择授权商品',
                        content : '<div class="dialog-ul" ><div class="head choose"><ul class="clearfix"><li style="line-height: 0px;width:5%;margin-top:5px;"><input type="checkbox" style="margin-top: 5px;" id="check"></li><li class="w10" style="width:8%;"><span class="check-all" id="allcheck" style="cursor:pointer">全选</span></li><li class="w10" style="width:20%;">缩略图</li><li class="w40" style="width:30%;">商品名称</li><li class="w30" style="width:30%">批发价</li></ul></div><div class="choose-list" id="pro" style="height: 470px;overflow:scroll">' + pros + '</div></div>'
                         + '<div class="info-box" align="center"><span class="com-info-r"><span class="btn btn-important btn-w100x32" id="add-pro">添加</span></span></div>',
                        onshow : function () {
                            // 复选框全选/反选
                            $("#check").on("click", function () {
                                if ($(this).is(':checked')) {
                                    $("#pro :checkbox").prop("checked", true);
                                } else {
                                    $("#pro :checkbox").prop("checked", false);
                                }
                            });
                            // 文字点击全选/反选
                            $("#allcheck").on("click", function () {
                                if (!$("#check").is(':checked')) {
                                    $("#check").prop("checked", true);
                                    $("#pro :checkbox").prop("checked", true);
                                } else {
                                    $("#check").prop("checked", false);
                                    $("#pro :checkbox").prop("checked", false);
                                }
                            });

                            //绑定【添加】事件
                            $("#add-pro").on("click", function () {
                                var arrChk = $('input[type="checkbox"][name="checks"]:checked'); //$("input[name='checks'][checked]");
                                if (arrChk.length == 0) {
                                    //错误信息框模板
                                    var errorObj1 = _.template($('#item-error').html());
                                    var errorTip = dialog({
                                            title : '注意',
                                            content : '<div class="dialog-div"><div>请选择需要授权的商品!</div><div class="price-game-btn"><div class="btn btn-warn btn-w140x40" id="ok" code="">确认</div></div></div>'
                                        });
                                    errorTip.showModal();
                                    $("#ok").click(function () {
                                        errorTip.remove();
                                    });
                                    return false;
                                }

                                //选择前先清空列表div
                                $("#already").html("");
                                $('input[name="checks"]:checked').each(function (i, el) {
                                    di.remove();
                                    var products = $(this).val().split(";");
                                    //构建已选择的商品列表alert($(this).val());
                                    $("#already").append('<div class="box-w140x218" id="div_' + i + '">' +
                                        '<a href="javascript:void(0)">' +
                                        '<div class="right-top-bg" id="close_' + i + '"><input type="hidden" id="proid_' + i + '" value="' + products[0] + '" /></div>' +
                                        '</a>' +
                                        '<div class="w140x140">' +
                                        '<a href="javascript:void:(0)">' +
                                        '<img src="' + products[1] + '"></a>' +
                                        '</div>' +
                                        '<div class="empower-name" >' +
                                        '<a href="javascript:void(0)" title='+products[2]+'>' + products[2] + '</a>' +
                                        '</div>' +
                                        '<div class="trade-price clearfix">' +
                                        '<div class="price-left">批发价</div>' +
                                        '<div class="price-right">￥' + products[3] + '</div>' +
                                        '</div>' +
                                        '</div>');
                                    //列表商品右上角的删除事件
                                    $("#close_" + i).on("click", function () {
                                        $("#already").children('#div_' + i).remove();
                                    });
                                });

                            });
                        }
                    });
                di.showModal();
            },
            error : function () {
                //错误信息框模板
                var errorObj1 = _.template($('#item-error').html());
                var errorTip = dialog({
                        title : '注意',
                        content : errorObj1
                    });
                errorTip.showModal();
                $("#ok").click(function () {
                    errorTip.remove();
                });
            }
        });
        $(".ui-dialog-grid").attr("style", "width:740px!important;height: 650px!important");
        $(".ui-dialog-title").attr("style", "width:710px!important;");
        $(".ui-dialog-body").attr("style", "text-align:left!important;");
    });
}
//渲染价格策略
function listPriceStrategy() {

    var priceTemplObj = _.template($('#price-option-templ').html());

    $.ajax({
        url : PAGE_CONFIG.requestUrl.priceStrategyS7,
        type : 'get',
        dataType : 'json',
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = priceTemplObj(datas);
            $("#price").html(tmplObjHtml);
        },
        error : function (xhr, status, error) {
            var tmplObjHtml = priceTemplObj([]);
            $("#price").html(tmplObjHtml);
        }
    });
}

var addrTemplObj = _.template($('#addr-option-templ').html());
//渲染省
function renderArea() {

    // 省
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addrProvince,
        type : 'get',
        dataType : 'json',
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = addrTemplObj(datas);
            $("#province").html(tmplObjHtml);
        },
        error : function (xhr, status, error) {
            var tmplObjHtml = addrTemplObj([]);
            $("#province").html(tmplObjHtml);
        }
    });

    $("#province").on("change", function () {
        var code = $(this).val();
        renderAddrCity(code);
    });

    $("#city").on("change", function () {
        var code = $(this).val();
        renderAddrCounty(code);
    });
}
//市
function renderAddrCity(provinceCode) {

    // 市
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addrCity,
        type : 'post',
        dataType : 'json',
        data : {
            code : provinceCode,
            _token : COMM_DATA.csrfToken
        },
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = addrTemplObj(datas);
            $("#city").html(tmplObjHtml);

        },
        error : function (xhr, status, error) {
            var tmplObjHtml = addrTemplObj([]);
            $("#city").html(tmplObjHtml);
        }
    });

    $("#city").empty().html(addrTemplObj([]));
    $("#country").empty().html(addrTemplObj([]));
};
//区/县
function renderAddrCounty(cityCode) {
    // 区/县
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addrCounty,
        type : 'post',
        dataType : 'json',
        data : {
            code : cityCode,
            _token : COMM_DATA.csrfToken
        },
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = addrTemplObj(datas);
            $("#country").html(tmplObjHtml);

        },
        error : function (xhr, status, error) {
            var tmplObjHtml = addrTemplObj([]);
            $("#country").html(tmplObjHtml);
        }
    });
};

//保存商品价格策略
function savePrice() {
    //判断是否选择了授权商品
    var childs = $('#already').children('div').length;
    if (childs == 0) {
        //错误信息框模板
        var errorObj1 = _.template($('#item-error').html());
        var errorTip = dialog({
                title : '注意',
                content : '<div class="dialog-div"><div>请选择需要授权的商品!</div><div class="price-game-btn"><div class="btn btn-warn btn-w140x40" id="ok" code="">确认</div></div></div>'
            });
        errorTip.showModal();
        $("#ok").click(function () {
            errorTip.remove();
        });
        return false;
    }
    //判断是否选择价格策略
    if ($("#price").val() == '') {
        //错误信息框模板
        var errorObj1 = _.template($('#item-error').html());
        var errorTip = dialog({
                title : '注意',
                content : '<div class="dialog-div"><div>请选择价格策略!</div><div class="price-game-btn"><div class="btn btn-warn btn-w140x40" id="ok" code="">确认</div></div></div>'
            });
        errorTip.showModal();
        $("#ok").click(function () {
            errorTip.remove();
        });
        return false;
    }
    //判断是否选择地区
    if ($("#province").val() == '' || $("#city").val() == '' || $("#country").val() == '') {
        //错误信息框模板
        var errorObj1 = _.template($('#item-error').html());
        var errorTip = dialog({
                title : '注意',
                content : '<div class="dialog-div"><div>请选择地区!</div><div class="price-game-btn"><div class="btn btn-warn btn-w140x40" id="ok" code="">确认</div></div></div>'
            });
        errorTip.showModal();
        $("#ok").click(function () {
            errorTip.remove();
        });
        return false;
    }

    //获取商品id、价格策略id、地区id，提交到服务器proid_
    var proidsAry = [];
    var proidsVal = "";
    for (var i = 0; i < childs; i++) {
        proidsAry.push($("#proid_" + i).val());
    }
    proidsVal = proidsAry.join(",");

    //保存商品授权
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addPrice,
        type : 'post',
        data : {
            proids : proidsVal, //商品id集，多个以分号;隔开
            price : $("#price").val(), //价格策略id
            province : $("#province").val(), //省
            city : $("#city").val(), //市
            country : $("#country").val(), //区
            _token : COMM_DATA.csrfToken
        },
        success : function (result) {
            //页面列表模板
            var templ = _.template($("#item-template1").html());
            //响应
            setClassifyData(result.data, templ);

            var onClickObj = {
                onClick : function () {
                    var clickPage = $(this).attr("data-page");
                    getClassifyData(clickPage);
                }
            };
            //  更新翻页控件
            var tmpConf = $.extend(result.pagingConfData, onClickObj);
            commTemplUtil.initPaging("#comm-paging", tmpConf);
            
            // 重置参数,
            $('#already').empty();
            $("#price").val("");
            $("#province").val("");
            $("#city").val("");
            $("#country").val("")
            
        },
        error : function (xhr, status, error) {
            //错误信息框模板
            var errorObj1 = _.template($('#item-error').html());
            var errorTip = dialog({
                    title : '注意',
                    content : '<div class="dialog-div"><div>商品授权失败!</div><div class="price-game-btn"><div class="btn btn-warn btn-w140x40" id="ok" code="">确认</div></div></div>'
                });
            errorTip.showModal();
            $("#ok").click(function () {
                errorTip.remove();
            });
            return false;
        }
    });
}

/***
 * 页面填充数据后, 绑定事件;
 */
function bindEvents(htmlObj) {

    var commBody = $("#commTabs_2_body");
    var classifyTempl = _.template($('#item-template1').html());

    //终止
    commBody.find(".zz").on("click", function () {
        var id = $(this).parents("ul").attr("data-id");
        //确认框模板
        var confirmObj1 = _.template($('#item-confirm').html());
        var dia = dialog({
                title : '注意',
                content : confirmObj1
            });
        dia.showModal();

        $("#tj").on("click", function () {
            $.ajax({
                url : PAGE_CONFIG.requestUrl.zzProduts,
                type : "put",
                data : {
                    id : id,
                    _token : COMM_DATA.csrfToken
                },
                success : function (result) {
                    //响应
                    setClassifyData(result.data, classifyTempl);
                    dia.remove();
                },
                error : function () {
                    dia.remove();

                    //错误信息框模板
                    var errorObj1 = _.template($('#item-error').html());
                    var errorTip = dialog({
                            title : '注意',
                            content : errorObj1
                        });
                    errorTip.showModal();
                    $("#ok").click(function () {
                        errorTip.remove();
                    });
                }
            });
        });
        $(".remove").click(function () {
            dia.remove();
        });
    });

};

/**
 * 生成-信息列表,
 */
function setClassifyData(data, templ) {
    var classifyTemplHtml = templ(data);
    $("#commTabs_2_body").html(classifyTemplHtml);
    bindEvents(templ);
};